// 用户模块的公共数据
export default {
  namespaced: true,
  state: {
    address: uni.getStorageSync('address'),
    token: uni.getStorageSync('token'),
    redirectiveInfo: uni.getStorageSync('redirectiveInfo'),
    userInfo: uni.getStorageSync('userInfo')
  },
  // 工作中利用getters获取state中数据,因为getters具有缓存作用存到内存中
  // 取值的时候不用每次都访问本地数据了
  getters: {
    getAddress (state) {
      return state.address
    },
    // 处理address中的地址拼接
    joinAddress (state) {
      return state.address && `${state.address.provinceName}${state.address.cityName}${state.address.countyName}${state.address.detailInfo}`
    },
    // 获取token
    getToken (state) {
      return state.token
    },
    // 获取保存页面的信息
    getRedirectiveInfo (state) {
      return state.redirectiveInfo
    },
    // 获取用户信息
    getuserInfo (state) {
      return state.userInfo
    }
  },
  mutations: {
    // 设置路径
    setAddress (state, payload) {
      state.address = payload
      uni.setStorageSync('address', state.address)
    },
    // 设置token
    setToken (state, token) {
      state.token = token
      uni.setStorageSync('token', state.token)

    },
    // 保存当前页面
    setRedirectiveInfo (state, redirectiveInfo) {
      state.redirectiveInfo = redirectiveInfo
      // 保存在本地
      uni.setStorageSync('redirectiveInfo', redirectiveInfo)
    },
    // 设置userInfo
    setuserInfo (state, userInfo) {
      state.userInfo = userInfo
      // 保存到本地
      uni.setStorageSync('userInfo', state.userInfo)
    },

  },
  actions: {
    Login ({ commit }) {
      // 模拟异步请求接口
      setTimeout(() => {
        // 自己模块操作commit不用添加模块名
        commit('setToken', null)
        commit('setRedirectiveInfo', null)
        commit('setuserInfo', null)
        // 当把token设置为空时，则自动跳转到登陆页面
        // 因为我的页面有一个判断登陆页面token是否为空
      }, 500)

    }
  }
}